package com.yin.waimai.service;

import com.yin.waimai.dto.OrderNotificationDTO;

/**
 * 通知服务接口
 * 提供邮件、短信等多种通知方式
 */
public interface NotificationService {

    /**
     * 发送订单状态变更邮件通知
     * @param orderNotification 订单通知信息
     */
    void sendOrderStatusEmailNotification(OrderNotificationDTO orderNotification);

    /**
     * 发送订单创建确认邮件
     * @param orderNotification 订单通知信息
     */
    void sendOrderCreatedEmailNotification(OrderNotificationDTO orderNotification);

    /**
     * 发送配送完成邮件通知
     * @param orderNotification 订单通知信息
     */
    void sendDeliveryCompletedEmailNotification(OrderNotificationDTO orderNotification);

    /**
     * 发送异步邮件通知（通过RabbitMQ）
     * @param orderNotification 订单通知信息
     */
    void sendAsyncEmailNotification(OrderNotificationDTO orderNotification);

    /**
     * 验证邮箱地址格式
     * @param email 邮箱地址
     * @return 是否有效
     */
    boolean isValidEmail(String email);
}